package com.hbnu.innerclass;

/**
 * @author kittychen
 * @since 2025-09-19 9:11
 */
public class InnerClassDemo04 {

    public static void main(String[] args) {
        // 传统方式
//        InnerInterface03 innerInterface03_1 = new InnerClass02();
//        innerInterface03_1.method("kittychen");

        // 匿名内部类方式
//        InnerInterface03 innerInterface03_2 = new InnerInterface03() {
//            @Override
//            public String method(String name) {
//                return "hello" + name;
//            }
//        };
//        innerInterface03_2.method("kittychen");

        // lambda表达式方式   标准格式：(形参列表) -> {方法体}
//        InnerInterface03 innerInterface03 = username -> "hello" + username;
//        innerInterface03.method("kittychen");

        // 1、无参无返回值，如果方法体只有一条语句，则{}可以省略
//        InnerInterface03 innerInterface03 = () -> System.out.println(" =========");

        // 2、有一个参数，但是没有返回值,如果方法体有两条或两条以上的语句，则{}不能省略
        /*
        InnerInterface03 innerInterface03 = (String name) -> {
            int a = 90;
            System.out.println("a=" + a);
        };
        InnerInterface03 innerInterface03_1 = (name) -> {
            int a = 90;
            System.out.println("a=" + a);
        };
        InnerInterface03 innerInterface03_2 = name -> {
            int a = 90;
            System.out.println("a=" + a);
        };
        */

        // 3、有多个参数，有返回值,方法体只有一条语句,则return 和 {}都可以省略
        InnerInterface03 innerInterface03 = (String name, int age) -> name + age;
        InnerInterface03 innerInterface03_1 = (name, age) -> name + age;
    }
}
